<?php if (!defined('ROBOT')) exit('You can not directly access the file.');
/**
 * 工具方法
 * @author 亦痕
 * @link http://www.xlogs.cn
 * @version 1.0
 */

/**
 * 获取访问者ip地理位置
 * 获取成功返回地理位置数据，失败返回false
 * @param string $ip
 * @return string
 */
function ipPosition($ip){ 
    $url = "http://apis.juhe.cn/ip/ip2addr?ip={$ip}&key=bd96a566bc8d678399d1f0606a0476a3";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT,3);
    $result = curl_exec($ch);
    curl_close($ch);
    if ($result) {
        $result = json_decode($result);
        return $result->result->area;
    }
    return false;
}

/**
 * api请求
 * @param string $api_key
 * @param string $info
 * @return string
 */
function  apiCurl($api_key, $info) {
    $apiurl = "http://www.tuling123.com/openapi/api?info={$info}&key={$api_key}";
	$curl_obj = curl_init();
    //curl_setopt($curl_obj, CURLOPT_HTTPHEADER, $header);
	curl_setopt($curl_obj, CURLOPT_URL, $apiurl);
	curl_setopt($curl_obj, CURLOPT_HEADER, 0);
	curl_setopt($curl_obj, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($curl_obj, CURLOPT_CONNECTTIMEOUT, 6);
	$result = curl_exec($curl_obj);
	curl_close($curl_obj);
	return $result ? $result : false;
}

function transformation($str, $isarray, $is_ignore) {
	$new_str = $str;
	if ($is_ignore) {
		if ($isarray) {
			$new_str = array();
			for ($i = 0; $i < count($str); $i++) {
				array_push($new_str, strtolower($str[$i]));
			}
		} else {
			$new_str = strtolower($str);
		}
	}
	return $new_str;
}

/**
 * 判断某个字符串是否包含某个字符或字符串
 * @param string $input 要判断的原字符串
 * @param array|string $contain 要判断包含的字符或字符串
 * @param boolean $isarray 设置$contain是否为数组，默认为false，$contain为字符
 * @param boolean $is_ignore 是否忽略大小写的比较
 * @return boolean 如果包含返回true，不包含返回false
 */
function is_contain($contain, $input, $isarray = false, $is_ignore = false) {
	$contain = transformation($contain, $isarray, $is_ignore);
	$input = transformation($input, false, $is_ignore);
	if ($isarray) {
		for ($i = 0; $i < count($contain); $i++) {
			if (count(explode($contain[$i], $input)) > 1) {
				return true;
			}
		}
		return false;
	}
	return count(explode($contain, $input)) > 1 ? true : false;
}

/**
 * 判断某个字符串的开头是否为某个字符或字符串
 * @param string $char 字符
 * @param string $input 要判断的原字符串
 * @param boolean $isarray 设置$char是否为数组，默认为false
 * @param boolean $is_ignore 是否忽略大小写的比较
 * @return boolean 如果是返回true，不是返回false
 */
function start_contain($char, $input, $isarray = false, $is_ignore = false) {
	$char = transformation($char, $isarray, $is_ignore);
	$input = transformation($input, false, $is_ignore);
	if ($isarray) {
		for ($i = 0; $i < count($char); $i++) {
			$strArr = explode($char[$i], $input);
			if (count($strArr) > 1 && ($strArr[0] == "" || strlen($strArr[0]) == 0)) {
				return true;
			}
		}
		return false;
	}
	$strArr = explode($char, $input);
	if (count($strArr) > 1 && ($strArr[0] == "" || strlen($strArr[0]) == 0)) {
		return true;
	}
	return false;
}

/**
 * 判断某个字符串的结尾是否为某个字符或字符串
 * @param string $char 字符
 * @param string $input 要判断的原字符串
 * @param boolean $isarray 设置$char是否为数组，默认为false
 * @param boolean $is_ignore 是否忽略大小写的比较
 * @return boolean 如果是返回true，不是返回false
 */
function end_contain($char, $input, $isarray = false, $is_ignore = false) {
	$char = transformation($char, $isarray, $is_ignore);
	$input = transformation($input, false, $is_ignore);
	if ($isarray) {
		for ($i = 0; $i < count($char); $i++) {
			$strArr = explode($char[$i], $input);
			if (count($strArr) > 1 && ($strArr[1] == "" || strlen($strArr[1]) == 0)) {
				return true;
			}
		}
		return false;
	}
	$strArr = explode($char, $input);
	if (count($strArr) > 1 && ($strArr[1] == "" || strlen($strArr[1]) == 0)) {
		return true;
	}
	return false;
}

function is_equal($char, $input, $isarray = false, $is_ignore = false) {
	$char = transformation($char, $isarray, $is_ignore);
	$input = transformation($input, false, $is_ignore);
	if ($isarray) {
		for ($i = 0; $i < count($char); $i++) {
			if ($char[$i] == $input) {
				return true;
			}
		}
		return false;
	}
	return $char == $input ? true : false;
}
	
/**
 * 获取访问者IP地址
 * @return Ambigous <string, unknown>
 */
function getIP() {
	$ip = "";
	if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) {
		$ip = getenv("HTTP_CLIENT_IP");
	} else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")) {
		$ip = getenv("HTTP_X_FORWARDED_FOR");
	} else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown")) {
		$ip = getenv("REMOTE_ADDR");
	} else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")) {
		$ip = $_SERVER['REMOTE_ADDR'];
	} else {
		$ip = "unknown";
	}
	if (strpos($ip, ',')) {
		$ipArr = explode(',', $ip);
		$ip = $ipArr[0];
	}
	return $ip;
}

/**
 * 将url转为a链接
 * @return string
 */
function repUrl($url) {
    return "<a target=\"blank\" href=\"{$url}\">{$url}</a>";
}
?>